package com.hmall.item.task;


import com.hmall.item.pojo.Item;
import com.hmall.item.service.IItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class HotSaleItemService {

    @Autowired
    private IItemService itemService;

    @Autowired
    private StringRedisTemplate redisTemplate;

    // 每天凌晨3点执行
    @Scheduled(cron = "0 0 3 * * ?")
//    @Scheduled(cron = "0/3 * * * * ?")
    public void updateHotSaleItems() {
        List<Item> topItems = itemService.selectTopSalesItems(20); // 假设你在数据库中有查询Top20销量的SQL

        // 使用Redis的List来存储热销商品 ID
        // 清空旧的缓存
        redisTemplate.opsForList().getOperations().delete("HOT_SALE_ITEMS");
        // 将商品 ID 存入 Redis（这里存储商品的 ID 集合）
        for (Item item : topItems) {
            redisTemplate.opsForList().rightPush("HOT_SALE_ITEMS", String.valueOf(item.getId()));
        }
    }
}
